import { Body, Controller, Delete, Get, Param, Post, Put, Query } from '@nestjs/common';
import { ApiParam, ApiQuery, ApiTags } from '@nestjs/swagger';
import { TagDto } from './dto/tag.dto';
import { TagService } from './tag.service';

@Controller()
@ApiTags('文章标签')
export class TagController {
    constructor(private readonly tagService: TagService) {}

    @Get('tag')
    tagList() {
        return this.tagService.getAllTag()
    }

    @Get('tag/:tagId')
    @ApiParam({
        name: 'tagId',
        description: '请传入文章标签Id'
    })
    getTagById(@Param('tagId') id){
        return this.tagService.getTagById(id)
    }

    @Post('tag')
    createTag(@Body() tag: TagDto){
        return this.tagService.saveTag(tag);
    }

    @Put('tag/:tagId')
    @ApiParam({
        name: 'tagId',
        description: '请传入文章标签Id' 
    })
    updateTagById(@Param('tagId') id: number, @Body() updateTagDto: TagDto){
        return this.tagService.updateTagById(id, updateTagDto)
    }

    @Delete('tag/:tagId')
    @ApiParam({
        name: 'tagId',
        description: '请传入文章标签Id' 
    })
    deleteTagById(@Param('tagId') id){
        return this.tagService.deleteTagById(id)
    }

    @Get('tagByQuery')
    @ApiQuery({
        name: 'query',
        required: false
    })
    @ApiQuery({
        name: 'pagenum'
    })
    @ApiQuery({
        name: 'pagesize'
    })
    getTagListByQuery(@Query('query') query, @Query('pagenum') pagenum, @Query('pagesize') pagesize){
        return this.tagService.getTagByQuery(query, pagenum, pagesize)
    }

    @Post('insertTags')
    insertTags(@Body() tags: TagDto[]){
        return this.tagService.insertManyTags(tags)
    }
}
